//
//  NSDate+Extension.swift
//  WeiBO28
//
//  Created by 飞奔的羊 on 16/5/16.
//  Copyright © 2016年 itcast. All rights reserved.
//

import UIKit

extension NSDate {

	
	class func sinaDate(creatAt: String) -> NSDate{
	
		//代码执行到此,从热爱TAT 一定有值
		let dateForematter = NSDateFormatter()
		dateForematter.locale = NSLocale(localeIdentifier: "en_US")
		///格式化时间
		dateForematter.dateFormat = "EEE MMM dd HH:mm:ss z yyyy"
		let creatAtDate = dateForematter.dateFromString(creatAt)
		
		return creatAtDate!
	}
	var sinaDateString: String? {
		let dateFormatter = NSDateFormatter()
		dateFormatter.locale = NSLocale(localeIdentifier: "en_US")
		//各种判断
		if isThisYear(self) {
		
			
			//是今年
			let calendar = NSCalendar.currentCalendar()
			//判断是否是今天
			if calendar.isDateInToday(self) {
				//判断是否在1分钟之内
				//方法1 :获取时间差值					creatAtDate?.timeIntervalSinceDate(<#T##anotherDate: NSDate##NSDate#>)
				//方法2
				//					let date = NSDate().dateByAddingTimeInterval(<#T##ti: NSTimeInterval##NSTimeInterval#>)
				
				let timeInterval = abs(self.timeIntervalSinceNow)
				if timeInterval < 60 {
					return "刚刚"
				} else if timeInterval < 3600 {
					let result = timeInterval / 60
					return"\(Int(result))分钟前"
					
				} else {
					let result = timeInterval / 3600
					
					return "\(Int(result))小时前"
				}
				
			} else if calendar.isDateInYesterday(self) {
				//昨天
				dateFormatter.dateFormat = "昨天 HH:mm"
			} else {
				//其他
				dateFormatter.dateFormat = "MM-dd HH:mm"
			}
		} else {
			//不是今年
			dateFormatter.dateFormat = "yyyy-MM-dd HH:mm"
		}
	
		return dateFormatter.stringFromDate(self)
	}
	
	
	private func isThisYear(creatAtDate: NSDate) -> Bool {
		//获取当前时间
		let currentDate = NSDate()
		
		let dateFormatter = NSDateFormatter()
		//设置本地化信息
		dateFormatter.locale = NSLocale(localeIdentifier: "en_US")
		//设置格式化方式
		dateFormatter.dateFromString("yyyy")
		//获取当前时间的年份
		let currentDateYear = dateFormatter.stringFromDate(currentDate)
		//获取发微博时间的年份
		let createAtDateYear = dateFormatter.stringFromDate(creatAtDate)
		
		return currentDateYear == createAtDateYear
		
		
		
		
	}
}